\section*{Introduction}

An API represents a contract between the data and business-logic stored on your Server, and Consumers who wish to interact with this data. Breaking this contract will result in angry emails from developers and anguished users with broken apps. Designing a hard-to-use API will result in few or no third-party developers using it. On the other hand, building a great API and adhering to this contract will result in substantially more third-party developers and can elevate your service from a closed-source product to an open platform.

Building an API is one of the most important things you can do to increase the value of your service. By having an API, your service/application has the potential to become a platform from which other services grow. Look at these tech companies offering popular services: \href{https://developers.facebook.com/}{Facebook}, \href{https://dev.twitter.com/docs/api/1.1}{Twitter}, \href{https://developers.google.com/}{Google}, \href{http://developer.github.com/v3/}{GitHub}, \href{https://developer.amazon.com/}{Amazon}, \href{http://developer.netflix.com/}{Netflix}, \href{https://www.dropbox.com/developers/core/docs}{Dropbox}... None of them would be nearly as popular as they are today if they hadn't opened their data and functionality via API. An entire industry exists with the sole purpose of consuming data provided by these platforms (Facebook games, social-media CRMs, secure Dropbox tools...)

The principles of this book, if followed while designing and maintaining an API, will ensure third-party developers grok your API while consequently reducing support tickets and emails. Developers will travel from tech conference to tech conference rejoicing what a pleasure working with your API has been, getting more developers to sign-up along the way.

\subsection*{Approach}

This book will take a language-agnostic approach to demonstrating good API design. While there will be a few code examples here and there, you won't actually need to run any of them to understand what is happening. In fact, many of the topics are more philosophical than technical, and this book will make a great candidate for sitting on the back of your toilet.

\subsection*{Intended Audience}

The ideal reader of this book is someone who has already built several websites and is comfortable working with a web language or framework, as well as having some intermediate knowledge such as how to read and write HTTP headers.

While knowledge of any particular language is not a requirement of this book, a basic understanding of SQL will be beneficial for understanding the example queries.

\subsection*{Goals}

By the time you're done reading this book you'll have a high-level understanding of how to build an HTTP API Ecosystem which third-party developers will love. This book will not cover the technical details of how to program an API from scratch.
